start        equ  $1000
data         equ  $1200
             org  start
             movea.l #$1300,a7




             movem.l  d0/a0-a1,-(a7)
             move.l  #alpha,a0
             move.l  #beta,a1
             move.b  count,d0
             jsr     copy_array
             movem.l  (a7)+,d0/a0-a1


             nop


             org  $1100

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; subroutine:  copy_array
; Description: copy data from an array of byte size to the other array
; input: a0.l  is address of source array
;        a1.l  is address of destination array
;        d0.b  is number of data  in source array to be copied
; output: none
; Register used: none
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
copy_array     and.w #$00ff,d0
               sub.w #1,d0
x1             move.b (a0)+,(a1)+
               dbra  d0,x1
               rts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


               org data
alpha          dc.b 9, 8, 7, 6, 5, 4
beta           ds.b 6
count          dc.b 4



